// 导入封装好的 promise 请求方法
import getRequest from '../../utils/request.js'

// pages/home/home.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    swiperList: [], // 轮播图数组
    recommendList: [], // 推荐课程数组
    hotList: [] // 热门视频数组
  },

  // 封装一个公用的请求方法
  getRequest2(options) {
    return new Promise((resolve, reject) => {
      wx.request({
        url: options.url,
        success: (res) => {
          var { status } = res.data
          if (status === 0) {
            // options.callback(message)
            resolve(res.data)
          }
        }
      })
    })
  },

  // 获取轮播图数组
  // 写法一：最原始初级版本
  getswiperList() {
    wx.request({
      url: 'http://localhost:3000/api/home/swipers',
      success: (res) => {
        // console.log(res); // res.data中有想要的数据
        // if (res.data.status === 0) { // 如果请求回来正确的数据才保存起来
        //   this.setData({
        //     swiperList: res.data.message
        //   })
        // }
        // 使用 ES6 的结构语法书写
        var { status, message } = res.data
        if (status === 0) {
          this.setData({
            swiperList: message
          })
        }
      }
    })
  },
  // 获取推荐课程数组
  // 方法二：进阶版
  // 将公用的方法单独提取了出来在当前页 getRequest2
  async getrecommendList() {
    await this.getRequest2({
      url: 'http://localhost:3000/api/home/course'
    }).then(data => {
      this.setData({
        recommendList: data.message
      })
      console.log(data);
    })
  },

  // 获取热门视频数组
  // 方法三：究极升华版本
  // 模块化开发：将公用的 promise 请求，封装成了单独的模块 utils中的rquest.js
  async gethotList() {
    var data = await getRequest({ // getRequest 封装好的promise请求方法
      url: '/api/home/video'
    })
    // console.log(data);// data即为封装好的方法根据 url 返回出来的数据
    this.setData({
      hotList: data.message
    })
    // wx.request({
    //   url: 'http://localhost:3000/api/home/video',
    //   success: (res) => {
    //     // console.log(res);
    //     this.setData({
    //       hotList: res.data.message
    //     })
    //   }
    // })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getswiperList(),
      this.getrecommendList(),
      this.gethotList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})